<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>


<!--     1、求1 + 2！ + 3！ + 4！....+20!的值
	- 2！ = 2 * 1
	- 3！ = 3 * 2 * 1 -->

<script>
    var sum=0;
    var sum1=0;
    for(var i=1;i<21;i++){
        for(var j=1;j<=i;j++){
           sum1=i*j
        }
    }
    sum +=sum1;
    console.log('20以内阶层相加结果为'+sum)
</script>





<!-- 
2、求叠数之和(1-9)
- 如输入的是 n=3， a=2；则输出 2 + 22 + 222 的值。
	- 如输入的是 n=4， a=3；输出 3 + 33 + 333 + 3333的值
	- n = 3,相加三次,每次相加比前一次相加的数,多一位
	- 每次多的这个位数的值为a, 如果a为2则 2 * 10+2, 22 * 10+2 -->

<script>

    // 算数运算方式
    var a=9;
    var n=a+1;
    var temp = a, res = a;
    for(var i=1;i<n;i++){
        temp = temp*10+a;
        console.log(temp);  
        res+=temp;
    }
    console.log(a+'的叠加之和为'+res);
    
// a            n  
// 1            2      1+11=      1+ 10*1=12
// 2            3      2 + 22 + 222= 2+   2 * 10+2   +  22 * 10  + 2 =246
// 3            4      3 + 33 + 333 + 3333=3+ 3*10+3   +33*10+3  +333*10+3=3702


// 字符串拼接方式
    var a1=9;
    var n1=a1+1;
    var temp1 = a1, res1 = a1;
    for(var j=1;j<n1;j++){
        temp1 = temp1+''+a1;
        console.log(temp1);
        res1+=temp1*1;
    }
    console.log(a1+'的叠加之和为'+res1);



</script>








<!-- 
3、输入两个数求两个数的最大公约数
	- 先取出两个数中最小的数
	- 最小的数不断递减，取出能同时被两个数整除的数，并退出循环 -->

<script>
var g=12,y=30;
var min
if (g>y) {
    min=y
}else if(y>g){
    min=g
}else{
    console.log('最大公约数为'+y)
}

for(var i=min;i>0;i--){
    if(g%i===0 && y%i===0){
        console.log(g+'和'+y+'的最小公约数为'+i)
        break
    }
}
</script>






<!-- 
4、输入两个数，求两个数的最小公倍数
- 先取出两个数中最大的数
- 最大的数不断递增，提出能整除两个数的那个数，然后退出循环 -->

<script>
    var gg=8,yy=8;
    var max
    if (gg>yy) {
        max=gg
    }else if(yy>gg){
        max=yy
    }else{
        console.log('最小公倍数为'+yy)
    }
    
    for(var i=max;i>0;i++){
        if(i%gg===0 && i%yy===0){
            console.log(gg+'和'+yy+'的最小公倍数为'+i)
            break
        }
    }
    </script>





<!-- 	
5、回文数

- 要求：打印10000~99999区间的回文数字，形如12321 23432 34543等
	- 提示: 回文数需同时满足下面的条件         
	[1] 第一位和倒数第一位相等
	[2] 第二位和倒数第二位相等
	[2] 第二位等于第一位数加一
	[3] 第三位等于第二位数加一 -->

<script>


    // 字符串方式
     for(var str=10000;str<=99999;str++){
        str=str+''
        if(str[0] == str[4] && str[1] == str[3] && str[1] == (str[0] * 1 + 1) && str[2] == (str[1] * 1 + 1)){
            console.log('str回文数字有'+str)
        }
        // if((str[0]==str[str.length-1])  &&  (str[1]==str[str.length-2])  &&  (str[1]==str[0]))
 } 


// 算术运算方式
    for(var i=10000;i<=99999;i++){
        var g=i% 10,
            s=parseInt(i % 100 /10),
            b=parseInt(i %1000 /100),
            q=parseInt((i %10000)/1000),
            w=parseInt(i / 10000);
        if(g==w && s==q && s==g+1 && b==s+1){
            console.log('回文数字有'+i)
        }
    }



</script>
















</body>
</html>